summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/vi/manager_display_service.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/vi/manager_display_service.h')
-rw-r--r--src/core/hle/service/vi/manager_display_service.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/core/hle/service/vi/manager_display_service.h b/src/core/hle/service/vi/manager_display_service.h
index 60e646ee0..b1bdf7f41 100644
--- a/src/core/hle/service/vi/manager_display_service.h
+++ b/src/core/hle/service/vi/manager_display_service.h
@@ -4,21 +4,34 @@
#include "core/hle/service/cmif_types.h"
#include "core/hle/service/service.h"
+namespace Kernel {
+class KProcess;
+}
+
namespace Service::VI {
+class Container;
+
class IManagerDisplayService final : public ServiceFramework<IManagerDisplayService> {
public:
- explicit IManagerDisplayService(Core::System& system_, Nvnflinger::Nvnflinger& nvnflinger);
+ explicit IManagerDisplayService(Core::System& system_, std::shared_ptr<Container> container);
~IManagerDisplayService() override;
-private:
- Result CreateManagedLayer(Out<u64> out_layer_id, u32 unknown, u64 display_id,
+ Result CreateSharedLayerSession(Kernel::KProcess* owner_process, u64* out_buffer_id,
+ u64* out_layer_handle, u64 display_id, bool enable_blending);
+ void DestroySharedLayerSession(Kernel::KProcess* owner_process);
+
+ Result SetLayerBlending(bool enabled, u64 layer_id);
+
+public:
+ Result CreateManagedLayer(Out<u64> out_layer_id, u32 flags, u64 display_id,
AppletResourceUserId aruid);
+ Result DestroyManagedLayer(u64 layer_id);
Result AddToLayerStack(u32 stack_id, u64 layer_id);
Result SetLayerVisibility(bool visible, u64 layer_id);
private:
- Nvnflinger::Nvnflinger& m_nvnflinger;
+ const std::shared_ptr<Container> m_container;
};
} // namespace Service::VI